package main

func main() {
	/*
		switch expression {
			case condition:
		}
	*/

	//练习：判断文件类型，如果后缀名是.html 输入 text/html，如果后缀名.css 输出 text/css，如：后缀名是.js，输出text/javascript

	//var str = ".html"
	//
	//if str == ".html" {
	//	fmt.Println("text/html")
	//} else if str == ".css" {
	//	fmt.Println("text/css")
	//} else if str == ".js" {
	//	fmt.Println("text/javascript")
	//}

	//1、switch case的基本使用
	//switch str {
	//case ".js":
	//	fmt.Println("text/javascript")
	//	break
	//case ".html":
	//	fmt.Println("text/html")
	//	break
	//case ".css":
	//	fmt.Println("text/css")
	//	break
	//}

	//2、switch case的另一种写法
	//switch str := ".css"; str {
	//case ".js":
	//	fmt.Println("text/javascript")
	//	break
	//case ".html":
	//	fmt.Println("text/html")
	//	break
	//case ".css":
	//	fmt.Println("text/css")
	//	break
	//}
	//
	//fmt.Println(str) // undefined: str

	//3、一个分支可以有多个值，多个case值中间使用英文逗号分隔
	//判断一个数是不是偶数

	//var n = 5
	//switch n {
	//case 1, 3, 5, 7, 9:
	//	fmt.Println("奇数")
	//	break
	//case 2, 4, 6, 8, 10:
	//	fmt.Println("偶数")
	//	break
	//}

	//var score = "A" //ABC及格，D不及格
	//switch score {
	//case "A", "B", "C":
	//	fmt.Println("及格")
	//	break
	//case "D":
	//	fmt.Println("不及格")
	//	break
	//}

	//switch score := "A"; score { //ABC及格，D不及格
	//case "A", "B", "C":
	//	fmt.Println("及格")
	//	break
	//case "D":
	//	fmt.Println("不及格")
	//	break
	//}

	//4、分支还可以使用表达式，这时候switch语句后面不需要再跟判断变量。例如：
	//var age = 22
	//switch {
	//case age < 24:
	//	fmt.Println("好好学习")
	//	break
	//case age > 24 && age <= 60:
	//	fmt.Println("好好赚钱")
	//	break
	//case age > 60:
	//	fmt.Println("注意身体")
	//	break
	//default:
	//	fmt.Println("输入错误")
	//}

	//5、switch的穿透 fallthrought
	//`fallthrough`语法可以执行满足条件的case的下一个case，是为了兼容C语言中的case设计
	//var age = 30
	//switch {
	//case age < 24:
	//	fmt.Println("好好学习")
	//	break
	//case age > 24 && age <= 60:
	//	fmt.Println("好好赚钱")
	//	fallthrough
	//case age > 60:
	//	fmt.Println("注意身体")
	//	fallthrough
	//default:
	//	fmt.Println("输入错误")
	//}
}
